home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 21 / Cream of the Crop 21 (Terry Blount) (October 1996).iso / program / nwlib15.zip / DEMO.ZIP / FILES.PAS < prev    next >
Pascal/Delphi Source File  |  1996-06-08  |  6KB  |  217 lines

  1. unit Files;
  2.  
  3. interface
  4.  
  5. uses 
  6.      SysUtils,
  7.      WinTypes, 
  8.      WinProcs, 
  9.      Classes, 
  10.      Graphics, 
  11.      Forms, 
  12.      Controls, 
  13.      Buttons,
  14.      StdCtrls,
  15.      ExtCtrls,
  16.      Nwtools,
  17.      NWServer,
  18.      Nwlib;
  19.  
  20. type
  21.   TwinFile = class(TForm)
  22.     CancelBtn: TBitBtn;
  23.     Bevel1: TBevel;
  24.     Panel1: TPanel;
  25.     SalvageList: TListBox;
  26.     Header1: THeader;
  27.     NWServer1: TNWServer;
  28.     NWTools1: TNWTools;
  29.     NWLib1: TNWLib;
  30.     Bevel2: TBevel;
  31.     Panel2: TPanel;
  32.     fileList: TListBox;
  33.     Header2: THeader;
  34.     bSalvage: TButton;
  35.     Bevel3: TBevel;
  36.     Label1: TLabel;
  37.     Label2: TLabel;
  38.     Label3: TLabel;
  39.     Label4: TLabel;
  40.     Label5: TLabel;
  41.     Label6: TLabel;
  42.     fileOwner: TEdit;
  43.     fileCreated: TEdit;
  44.     fileModified: TEdit;
  45.     fileSize: TEdit;
  46.     deleteDate: TEdit;
  47.     deleteBy: TEdit;
  48.     fileUpdated: TEdit;
  49.     archiveBy: TEdit;
  50.     Label7: TLabel;
  51.     Label8: TLabel;
  52.     bInfo: TButton;
  53.     bFileInfo: TButton;
  54.     dirPath: TEdit;
  55.     Label9: TLabel;
  56.     bRefresh: TButton;
  57.     procedure FormShow(Sender: TObject);
  58.     procedure bSalvageClick(Sender: TObject);
  59.     procedure bInfoClick(Sender: TObject);
  60.     procedure bFileInfoClick(Sender: TObject);
  61.     procedure bRefreshClick(Sender: TObject);
  62.     procedure SalvageListEnter(Sender: TObject);
  63.     procedure fileListEnter(Sender: TObject);
  64.   private
  65.     { Private declarations }
  66.   public
  67.     { Public declarations }
  68.     filePath : string[99] ;
  69.   end;
  70.  
  71. var
  72.   winFile: TwinFile;
  73.  
  74. implementation
  75.  
  76. {$R *.DFM}
  77.  
  78. procedure TwinFile.FormShow(Sender: TObject);
  79.   var
  80.     ncursor : TCursor ;
  81.   begin
  82.     ncursor := screen.cursor ;
  83.     screen.cursor := crHourglass ;
  84.     if (length(alltrim(filePath)) < 2) then
  85.       filePath := 'z:.\' ;
  86.     dirPath.text  := filePath ;
  87.     try
  88.       { Add to Salvage List }
  89.       salvageList.items.clear ;
  90.       salvageList.items.addStrings(
  91.            getDeletedFileList(getPrimaryServerID,filePath)) ;
  92.       if (salvageList.items.count > 0) then
  93.         begin
  94.           salvageList.enabled   := true ;
  95.           salvageList.itemIndex := 0    ;
  96.           bInfo.enabled         := true ;
  97.           bInfoClick(sender) ;
  98.           bInfo.setfocus ;
  99.         end
  100.       else
  101.         begin
  102.           bInfo.enabled := false ;
  103.           salvageList.enabled := false ;
  104.           salvageList.items.add('<No Deleted Files in ' + filePath  + '>');
  105.         end;
  106.       { Add files to FileList }
  107.       fileList.items.clear ;
  108.       fileList.items.addStrings(getVolFileList(filePath + '*.*')) ;
  109.       if (fileList.items.count > 0) then
  110.         begin
  111.           fileList.itemIndex := 0 ;
  112.           fileList.enabled   := true ;
  113.           bFileInfo.enabled  := true ;
  114.           if (salvageList.items.count < 1) then
  115.             begin
  116.               bFileInfoClick(sender) ;
  117.               bFileInfo.setfocus ;
  118.             end;
  119.          end
  120.       else
  121.         begin
  122.           bFileInfo.enabled := false ;
  123.           bFileInfo.enabled := false ;
  124.           fileList.items.add('<No Files in ' + filePath  + '>');
  125.         end;
  126.      finally
  127.        screen.cursor := ncursor ;
  128.      end;
  129.   end;
  130.  
  131. procedure TwinFile.bSalvageClick(Sender: TObject);
  132.   begin
  133.     if fileExists(filePath + 'erase.me') and
  134.        yesNoBox(filePath + 'ERASE.ME;OverWrite Existing File?') then
  135.       deleteFile(filePath + 'erase.me') ;
  136.     if (not fileExists(filePath + 'erase.me')) then
  137.       begin
  138.         if Salvage(getPrimaryServerID,
  139.                     filePath + salvageList.items[salvageList.itemIndex],
  140.                     filePath + 'erase.me') then
  141.           okbox('File Salvaged to ' + filePath + 'ERASE.ME')
  142.         else
  143.           alertBox('Salvage Failed!') ;
  144.       end;
  145.   end;
  146.  
  147. procedure TwinFile.bInfoClick(Sender: TObject);
  148.   var
  149.     deletedFileInfo : TNWDeletedFileInfo ;
  150.   begin
  151.     fileOwner.text    := 'Unknown' ;
  152.     fileModified.text := 'N/A'     ;
  153.     fileSize.text     := 'Unknown' ;
  154.     fileCreated.text  := 'Unknown' ;
  155.     fileUpdated.text  := 'Unknown' ;
  156.     deleteDate.text   := 'Unknown' ;
  157.     deleteBy.text     := 'Unknown' ;
  158.     archiveBy.text    := 'Unknown' ;
  159.     bSalvage.enabled  := true      ;
  160.     if getDeletedFileInfo(filePath +
  161.                           salvageList.items[salvageList.itemIndex],
  162.                           deletedFileInfo) then
  163.       begin
  164.         fileOwner.text   := deletedFileInfo.ownerID                    ;
  165.         fileSize.text    := intToStr(deletedFileInfo.fileSize)         ;
  166.         fileCreated.text := dateToStr(deletedFileInfo.creationDate)    ;
  167.         fileUpdated.text := dateToStr(deletedFileInfo.updateDateTime)  ;
  168.         deleteDate.text  := dateToStr(deletedFileInfo.deletedDateTime) ;
  169.         deleteBy.text    := deletedFileInfo.deletedBy ;
  170.         archiveBy.text   := deletedFileInfo.lastArchivedBy ;
  171.       end;
  172.   end;
  173.  
  174. procedure TwinFile.bFileInfoClick(Sender: TObject);
  175.   var
  176.     fileInfo : TNWFileInfo ;
  177.   begin
  178.     fileOwner.text    := 'Unknown' ;
  179.     fileModified.text := 'Unknown' ;
  180.     fileSize.text     := 'Unknown' ;
  181.     fileCreated.text  := 'Unknown' ;
  182.     fileUpdated.text  := 'Unknown' ;
  183.     deleteDate.text   := 'N/A'     ;
  184.     deleteBy.text     := 'N/A'     ;
  185.     archiveBy.text    := 'Unknown' ;
  186.     bSalvage.enabled  := false     ;
  187.     if getFileInfo(filePath + fileList.items[fileList.itemIndex],
  188.                    fileInfo) then
  189.       begin
  190.         fileOwner.text    := fileInfo.ownerID ;
  191.         fileUpdated.text  := dateToStr(fileInfo.updatedDateTime);
  192.         fileModified.text := dateToStr(fileInfo.lastModifyDate) ;
  193.         fileSize.text     := intToStr(fileInfo.fileSize)        ;
  194.         fileCreated.text  := dateToStr(fileInfo.creationDate)   ;
  195.         archiveBy.text    := fileInfo.lastArchivedBy            ;
  196.       end;
  197.   end;
  198.  
  199. procedure TwinFile.bRefreshClick(Sender: TObject);
  200.   begin
  201.     filePath := setPath(dirPath.text) ;
  202.     if dirPath.modified then
  203.       formShow(self.owner) ;
  204.   end;
  205.  
  206. procedure TwinFile.SalvageListEnter(Sender: TObject);
  207.   begin
  208.     bSalvage.enabled := (salvageList.items.count > 0) ;
  209.   end;
  210.  
  211. procedure TwinFile.fileListEnter(Sender: TObject);
  212.   begin
  213.     bSalvage.enabled := false ;
  214.   end;
  215.  
  216. end.
  217.